Compiler Optimized Remote Method Invocation
نویسندگان
چکیده
We further increase the efficiency of Java RMI programs. Where other optimizing re-implementations of RMI use pre-processors to create stubs and skeletons and to create class specific serializers and deserializers, this paper demonstrates that with transformations based on compile time analysis an additional 18% performance gain can be achieved over class specific serializers alone for a simple scientific application. A novel and RMI-specific version of static heap analysis is used to derive information about objects that are passed as arguments of remote method invocations. This knowledge of objects and their interrelations is used for three optimizations. First, dynamic introspection and/or (recursive) dynamic invocations of object specific serializers is slow. With knowledge from our heap analysis, the marshaling of graphs of argument objects can be inlined at the call site. Hence, many method table lookups and skeleton indirections of previous approaches can be avoided and less protocol information is sent over the network. Secondly, because object graphs may be passed as RMI arguments, cyclic references need to be detected. With our heap analysis, we can detect if there is no potential for cycles and hence, if cycle detection code can be left out of the serialization and marshaling codes. Finally, object arguments to remote methods cause object creation and garbage collection. Heap analysis and an RMI-specific version of escape analysis allows the reuse of object graphs created in earlier remote invocations.
منابع مشابه
Parallel Remote Method Invocation and M-by-N Data Redistribution
Components can be a useful tool in software development, including the development of scientific computing applications. Many scientific applications require parallel execution, but commodity component models based on Remote Method Invocation (RMI) do not directly support the notion of parallel components. Parallel components raise questions about the semantics of method invocations and the mec...
متن کاملN Data Redistribution Through Parallel Remote Method
Components can be a useful tool in software development, including the development of scientific computing applications. Many scientific applications require parallel execution, but commodity component models based on remote method invocation do not directly support the notion of parallel components. Parallel components raise questions about the semantics of method invocations and the mechanics...
متن کاملEfficient Remote Method Invocation
In current Java implementations, Remote Method Invocation is slow. On a Pentium Pro/Myrinet cluster, for example, a null RMI takes 1228 μs using Sun’s JDK 1.1.4. This paper describes Manta, a Java system designed to support efficient communication. On the same Myrinet cluster, Manta achieves a null RMI latency of 35 μs. Manta is based on a native Java compiler. It achieves high communication pe...
متن کاملRefining Open Distributed Systems Application to CORBA
This paper makes a proposal for introducing into the B Method a framework for distribution through remote method invocation of CORBA objects and to extend Atelier B to automatically generate CORBA IDL and distributed code.Wewill show that a constructive specificationmethod like the BMethod is well suited to design CORBA applications. Themethodologywe propose does not break the specificities of ...
متن کاملEnhancing Java RMI with Asynchrony through Reflection
Java RMI’s synchronous invocation model may cause scalability challenges when long duration invocations are targeted. One way of overcoming this difficulty is adopting an asynchronous mode of operation. An asynchronous invocation allows the client to continue with its computation after dispatching a call, thus eliminating the need to wait idle while its request is being processed by a remote se...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2003